clear; clc; close all;


% 参数设置
a = 0.1;         % 参数 a
b = 0.1;         % 参数 b
k = 1.85;        % 参数 k
c_values = -0.2:0.001:1.1;  % 参数 c 的变化范围
N = 5000;        % 用于计算 Lyapunov 指数的有效迭代步数
transient = 200; % 舍弃的暂态步数
x0 = 0.1;        % 初始状态 x0
q0 = 0.1;        % 初始状态 q0

% 定义迭代模型函数句柄
func = @mptm;

% 初始化存储 Lyapunov 指数的数组
LE1_vals = zeros(size(c_values));
LE2_vals = zeros(size(c_values));

% 遍历 c 值，计算每个 c 对应的 Lyapunov 指数
for i = 1:length(c_values)
    c = c_values(i);
    [LE1, LE2] = LEs(func, x0, q0, a, b, c, k, N, transient);
    LE1_vals(i) = LE1;
    LE2_vals(i) = LE2;
end

% 绘制 Lyapunov 指数曲线
figure;
plot(c_values, LE1_vals, 'r', 'LineWidth', 1); hold on;
plot(c_values, LE2_vals, 'b', 'LineWidth', 1);
yline(0, 'k--', 'LineWidth', 1); % 零刻度线
xlabel('c');
ylabel('LEs 指数');
title('LEs 指数随 c 变化');
legend('LE1','LE2','Location','best');
grid on;
